package com.candy.test;

import com.candy.dao.StudentInfoMapper;
import com.candy.pojo.StudentInfoBean;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import org.junit.Ignore;
import org.junit.Test;

import java.io.IOException;
import java.io.InputStream;
import java.util.List;

public class test02 {
    @Test
    public void test04(){
        String resource = "mybatis-config.xml";
        InputStream inputStream = null;
        try {
//            读取配置文件
            inputStream = Resources.getResourceAsStream(resource);
//           使用SqlSessionFactoryBuilder（工厂建造者） 根据配置信息（图纸）创建（build）工厂sqlSessionFactory
            SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
//            由工厂SqlSessionFactory来创建session
            try (SqlSession session = sqlSessionFactory.openSession()) {
                StudentInfoMapper mapper=session.getMapper(StudentInfoMapper.class);
                StudentInfoBean studentInfoBean=  mapper.selectStudentById(1);
                System.out.println(studentInfoBean);
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
    @Test
    public void test03(){
        String resource = "mybatis-config.xml";
        InputStream inputStream = null;
        try {
//            读取配置文件
            inputStream = Resources.getResourceAsStream(resource);
//           使用SqlSessionFactoryBuilder（工厂建造者） 根据配置信息（图纸）创建（build）工厂sqlSessionFactory
            SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
//            由工厂SqlSessionFactory来创建session
            try (SqlSession session = sqlSessionFactory.openSession()) {
//                session提供数据库操作的相关方法
//
//                参数（1、指定具体执行的sql语句，由namesapce+id值决定调用哪一个 2、）
//                selectList：用来查询一组数据
                List<StudentInfoBean> lst= session.selectList("com.candy.abc.selectStudentList");
//                遍历查询结果
                for (StudentInfoBean stus:lst
                     ) {
                    System.out.println(stus);

                }
                System.out.println(lst);

            }
        } catch (IOException e) {
            e.printStackTrace();
        }

    }
    @Ignore
    @Test
    public void test02(){
        String resource = "mybatis-config.xml";
        InputStream inputStream = null;
        try {
//            读取配置文件
            inputStream = Resources.getResourceAsStream(resource);
//           使用SqlSessionFactoryBuilder（工厂建造者） 根据配置信息（图纸）创建（build）工厂sqlSessionFactory
            SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
//            由工厂SqlSessionFactory来创建session
            try (SqlSession session = sqlSessionFactory.openSession()) {
//                session提供数据库操作的相关方法
//                selectOne代表查询结果只有一条数据：
//                参数（1、指定具体执行的sql语句，由namesapce+id值决定调用哪一个 2、）
//               StudentInfoBean student=session.selectOne("com.candy.abc.selectStudentById", 1);
//                System.out.println(student);
                StudentInfoBean stu=new StudentInfoBean();
                stu.setId(1);
                stu.setStuTel("13256987455");
//                update方法用来修改操作
                int num=session.update("com.candy.abc.updateStudentInfoById",stu);

                session.commit();
                System.out.println(num);

            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }





    @Ignore
    @Test
    public void test01(){
        String resource = "mybatis-config.xml";
        InputStream inputStream = null;
        try {
//            读取配置文件
            inputStream = Resources.getResourceAsStream(resource);
//           使用SqlSessionFactoryBuilder（工厂建造者） 根据配置信息（图纸）创建（build）工厂sqlSessionFactory
            SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
//            由工厂SqlSessionFactory来创建session
            try (SqlSession session = sqlSessionFactory.openSession()) {
//                session提供数据库操作的相关方法
//                selectOne代表查询结果只有一条数据：
//                参数（1、指定具体执行的sql语句，由namesapce+id值决定调用哪一个 2、）
//               StudentInfoBean student=session.selectOne("com.candy.abc.selectStudentById", 1);
//                System.out.println(student);
                StudentInfoBean stu=new StudentInfoBean();
                stu.setStuName("海贼王");
                stu.setStuPwd("888888");
                stu.setStuAddress("天津");
                stu.setStuTel("13256987455");
//                insert方法用来执行新增操作
                int num= session.insert("com.candy.abc.addStudentInfo",stu);
//               完成操作后，需要手动提交事务
                session.commit();
                System.out.println(num);
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

}
